"""
y_predict就是训练好的模型
y_predict = estimator.predict(y_test)

方法1：
print("模型评估方法1，直接比较预测值和实际值：\n", y_predict == y_test)

方法2：
print("模型评估方法2，计算准确率：\n", estimator.score(x_test, y_test))

方法3 精确率与召回率：
比如以这个癌症举例子！！！我们并不关注预测的准确率，而是关注在所有的样本当中，癌症患者有没有被全部预测（检测）出来，
就是癌症患者本来有10个，那这10个有没有都被预测出来。

    分类评估报告API：
    sklearn.metrics.classification_report(y_true, y_pred, labels=[], target_names=None )
        y_true：真实目标值
        y_pred：估计器预测目标值
        labels:指定类别对应的数字
        target_names：目标类别名称
        return：每个类别精确率与召回率

    举例：
    print("精确率和召回率为：", classification_report(y_test, lr.predict(x_test), labels=[2, 4], target_names=['良性', '恶性']))
                      precision    recall  f1-score   support

              良性       0.95      0.99      0.97       107
              恶性       0.98      0.92      0.95        64

       micro avg       0.96      0.96      0.96       171
       macro avg       0.97      0.96      0.96       171
    weighted avg       0.97      0.96      0.96       171
    说明：这个结果，恶性的召回率recall是0.92，也就是如果有100个是恶心的，只有92个被检测出来，还有8个没被检测出来。
         总共171个样本，有64个样本是恶性的。precision是精确率。


    应用场景：
        精确率越高，说明模型预测为正例的样本中，误判的情况越少。
        召回率越高，说明模型越能够找出所有的正例，漏报的情况越少。
            更关注正例的，工厂次品、疾病

方法4 ROC曲线与AUC指标：
    假设这样一个情况，如果99个样本癌症，1个样本非癌症，不管怎样我全都预测正例(默认癌症为正例),准确率就为99%但是这样效果并不好，这就是样本分类不均衡下的评估问题
        不管怎样我全都预测正例(默认癌症为正例) - 不负责任的模型
           准确率：99%
           召回率：99/99 = 100%
           精确率：99%
           F1-score: 2*99%/ 199% = 99.497%
           AUC:0.5
                TPR = 100%
                FPR = 1 / 1 = 100%
    问题：如何衡量样本分类不均衡下的评估？

    AUC的概率意义是随机取一对正负样本，正样本得分大于负样本的概率
    AUC的最小值为0.5，最大值为1，取值越高越好
    AUC=1，完美分类器，采用这个预测模型时，不管设定什么阈值都能得出完美预测。绝大多数预测的场合，不存在完美分类器。
    0.5<AUC<1，优于随机猜测。这个分类器（模型）妥善设定阈值的话，能有预测价值。
    最终AUC的范围在[0.5, 1]之间，并且越接近1越好

    AUC计算API:
        from sklearn.metrics import roc_auc_score
            sklearn.metrics.roc_auc_score(y_true, y_score)
                计算ROC曲线面积，即AUC值
                y_true:每个样本的真实类别，必须为0(反例),1(正例)标记
                y_score:每个样本预测的概率值

    如何确定正例和反例：
    正例：是那些属于我们感兴趣或要预测的类别的样本。
    在二分类问题中，通常将我们关心的类别定义为正例，并将其标签设置为1或“是”。
    例如，在垃圾邮件检测中，垃圾邮件可以被视为正例；在疾病诊断中，患有疾病的病人可以被视为正例。

    反例：是那些不属于我们感兴趣或要预测的类别的样本。
    在二分类问题中，与正例相对的类别就是反例，其标签通常设置为0或“否”。
    例如，在垃圾邮件检测中，非垃圾邮件可以被视为反例；在疾病诊断中，未患有疾病的病人可以被视为反例。

    AUC评估应用场景：
        AUC只能用来评价二分类
        AUC非常适合评价样本不平衡中的分类器性能

"""